package cn.tedu.carehome.foundation.mapper;

import cn.tedu.carehome.foundation.pojo.dto.VisitorAddNewDTO;
import cn.tedu.carehome.foundation.pojo.dto.VisitorUpdateDTO;
import cn.tedu.carehome.foundation.pojo.entity.Visitor;
import cn.tedu.carehome.foundation.pojo.vo.VisitorListItemVO;
import cn.tedu.carehome.foundation.pojo.vo.VisitorStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface VisitorMapper {
    /**
     * 插入访问人员的数据
     * @param visitor 访问人员数据
     * @return　被影响的数据行数
     */
    Integer insert(Visitor visitor);

    /**
     * 通过Id删除访问人员数据
     * @param id　访问人员ID
     * @return　被影响的数据行数
     */
    Integer deleteById(Long id);

    /**
     * 通过传过来的数组Id批量删除访问人员
     * @param ids Id数组
     * @return 受影响的数据行数
     */
    Integer deleteBYIds(Long[] ids);


    Integer deleteBYdataDate(String dataDate);


    /**
     * 通过ID修改访问人员的信息
     * @param visitor　修改访问人员信息DTO类
     * @return　被影响的数据行数
     */
    Integer UpdateInfo( Visitor visitor);

    /**
     * 查询访问人员的数量
     * @return　受影响的行数
     */
    Integer count(Long oldId);

    /**
     * 通过名字查询访问人员的访问次数
     * @param name　访问人员名字
     * @return　受影响的行数
     */
    Integer countByName(String name);

    /**
     * 通过老人Id查询过访问的人员
     * @param oldId　老人ID
     * @return 受影响的行数
     */
    Integer countByOldId(Long oldId);

    /**
     * 通过访问人员的Id查询访问人员详情
     * @param id 访问人员ID
     * @return 受影响的行数
     */
    VisitorStandardVO getStandardById(Long id);
    /**
     * 查询受访人员列表
     * @return 受访人员列表
     */
    List<VisitorListItemVO> select(Integer page, Integer size);
}
